package seqlist;

import java.util.Random;
import java.util.Scanner;

/**
 * @author shkstart
 * @create 2022-08-03-16:23
 */
public class HomeWork {

    public static void main(String[] args) {
        //1.数一下1-100的所有整数中有多少数字9
//        int temp = 0;
//        for(int i= 0;i<101;i++ ){
//            if(i%10==9){
//                temp++;
//                System.out.println(i+"、");
//            }
//            if(i/10==9){
//                temp++;
//                System.out.println(i+"、");
//            }        }
//        System.out.println(temp);

        //2/输出1000-2000的所有闰年
//       int temp = 0;
//        for (int i = 1000; i <=2000 ; i++) {
//            if(i%100==0){
//                if(i%400==0){
//                    temp++;
//                }
//            }else if(i%4==0){
//                temp++;
//            }
//        }
//        System.out.println(temp);
        //3输入一个数，判断是否为素数
//        int a = 4;
//        int b = 11;
//        System.out.println(isPrimeNum(a));
//        System.out.println(isPrimeNum(b));
//        printPrimeNum();
//        fun();
//        printShuiXianHua();
//        double add = add();
//        System.out.println(add);
//        int maxDivisor = maxDivisor(12, 6);
//        System.out.println(maxDivisor);
        int a =1;
        int b =2;
        int c = 3;
        int max = max(1, 2, 3);
        System.out.println(max);
    }

    public static int max(int a,int b){
        return a>b?a:b;
    }
    public static int max(int a, int b,int c){
        int temp = max(a,b);
        int max = max (temp,c);
        return max;
    }

//    9.同一个类中，分别定义两个整数的方法和三个小数之和的方法并执行
    public static  int add(int a,int b){
        return a+b;
    }
    public static  double add(double a,double b,double c){
    return a+b+c;
    }


    //    8.求两个正整数的最大公约数（辗转相除法  欧几里得算法）.
    public static int maxDivisor(int a, int b) {
//        int divisor = 1;
//        for (int i = 1; i <=a ; i++) {
//            if(a%i==0){
//                if(b%i==0){
//                    if(i>divisor){
//                        divisor = i;
//                    }
//                }
//            }
//        }
//        return divisor;
        int max = a > b ? a : b;
        int min = a < b ? a : b;
        int i = max % min;
//        当i == 0 时，min是最大公约数

        while (i != 0) {
            max = min;
            min = i;
            i = max % min;
        }
        return min;
    }


    //    7.计算1/1-1/2+1/3-1/4+1/5....+1/99-1/100
    public static double add() {
        int flag = 1;
        double sum = 0;
        for (double i = 1.0; i <= 100.0; i++) {
            sum += 1 / i * flag;
            flag = -flag;

        }
        return sum;
    }


    //    6.求出 100~999之间的所有的水仙花树并输出；
//    水仙花树是指一个三位数，其个位数字的立方和恰好等于该数字本身
//    如 153
    public static void printShuiXianHua() {
        int j = 0;
        for (int i = 100; i < 999; i++) {
            if (i == (i / 100) * (i / 100) * (i / 100) + (i % 10) * (i % 10) * (i % 10) + (i / 10 % 10) * (i / 10 % 10) * (i / 10 % 10)) {
                System.out.println(i);
                j++;
            }
        }
    }

    //    5.完成猜数字游戏，用户输入数字，判断数字是大于小于还是等于，等于时退出
    public static void fun() {

        Scanner scanner = new Scanner(System.in);
        Random random = new Random();
//        生成一个1 - 100的随机数
        int toGus = random.nextInt(100);
        System.out.println("要猜的数字是" + toGus);
        while (true) {
            int gus = scanner.nextInt();
            if (gus > toGus) {
                System.out.println("大了");
            } else if (gus < toGus) {
                System.out.println("小了");
            } else {
                break;
            }
        }

    }

    //4.打印1 -100 之间所有的素数
    public static void printPrimeNum() {

        int temp = 0;


        for (int i = 2; i < 100; i++) {

            boolean flag = true;
//            引入标志判断
            for (int j = 2; j < i; j++) {
                if (i % j == 0) {
                    //进入if内的，i不是素数
                    flag = false;
                    break;
                }


            }

            if (flag) {
                System.out.println(i);
                temp++;
            }

        }
        System.out.println(temp);

    }


    //3输入一个数，判断是否为素数
    public static boolean isPrimeNum(int num) {
        if (num < 1) {
            return false;
        }
        //从2开始到结束，有没有因子
        for (int i = 2; i < num; i++) {
            if (num % i == 0) {
                return false;
            }
        }
        return true;
    }


}
